<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>index05-三点运算符</title>
</head>

<body>
    <script type="text/javascript">

        // 三点运算符——可以使用一个变量接收多个参数的值，但是只能放在形参的最后一个
        // 收集参数
        // 三点运算符修改的形参相当于是一个数组
        // function foo(...value) {
        //     // console.log(value);
        //     for (let i = 0; i < value.length; i++) {
        //         console.log(value[i]);
        //     }
        // }
        // foo(10, 20, 30);
        // function foo(str, ...value) {
        //     // console.log(value);
        //     console.log(str);
        //     console.log("===============");
        //     for (let i = 0; i < value.length; i++) {
        //         console.log(value[i]);
        //     }
        // }
        // foo("hello", 10, 20, 30);

        // 提取内容
        // let arr1 = [1, 2, 3];
        // let arr2 = [10, arr1, 20]; // [10, [1, 2, 3], 20] ===>3
        // let arr3 = [30, 40, ...arr1, 50]; // [30,40, 1, 2, 3, 50] ===>6
        // console.log(arr2);
        // console.log(arr3);

        // 数组下有一个函数forEach函数，可以遍历数组，但是不会改变数组本身
        // forEach(fn)——可以接收一个函数作为参数，每次循环数组中的元素fn都会执行一次
        // fn——有三个参数:1.循环数组中元素，2.循环的数组元素的下标,3.循环的数组本身
        // [1,2,3,4,5,6,7,8,9,10]求和
        let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
        let sum = 0;
        // arr.forEach(function(elem, index){
        //     sum += elem;
        // });
        // arr.forEach((elem, index) => {
        //     sum += elem;
        // });
        arr.forEach(elem => sum += elem);
        console.log(sum);
    </script>
</body>

</html>